
#ifndef DATASTRUCT_MERGESORT_H
#define DATASTRUCT_MERGESORT_H



 /**
 * 归并排序
 * 采用自上而下的方式进行归并 需要递归调用
 * @param array  排序数组
 * @param length 数组的长度
 */
void mergeSort(int* array, int length);

/**
 * 归并排序
 * 采用自底向上的方式进行归并
 * @param array 排序数组
 * @param length 数组的长度
 */
void mergeSort2(int* array, int length);

static void __mergeSort(int* array, int left, int right);

static void __merge(int* array, int left, int middle, int right);

#endif